home *** CD-ROM | disk | FTP | other *** search
- # dict(1) completion
-
- { have dict || have rdict; } && {
- _dictdata()
- {
- dict $host $port $1 2>/dev/null | sed -ne \
- 's/^['$'\t '']['$'\t '']*\([^'$'\t '']*\).*$/\1/p'
- }
-
- _dict()
- {
- local cur prev host port db dictfile
-
- COMPREPLY=()
- _get_comp_words_by_ref cur prev
- dictfile=/usr/share/dict/words
-
- for (( i=1; i < COMP_CWORD; i++ )); do
- case ${COMP_WORDS[i]} in
- -h|--host)
- host=${COMP_WORDS[i+1]}
- [ -n "$host" ] && host="-h $host"
- i=$((++i))
- ;;
- -p|--port)
- port=${COMP_WORDS[i+1]}
- [ -n "$port" ] && port="-p $port"
- i=$((++i))
- ;;
- -d|--database)
- db=${COMP_WORDS[i+1]}
- [ -n "$db" ] && host="-d $db"
- i=$((++i))
- ;;
- *)
- ;;
- esac
- done
-
- if [[ "$cur" = -* ]]; then
- COMPREPLY=( $( compgen -W '--host --port --database \
- --match --strategy --config \
- --nocorrect --dbs --strats \
- --serverhelp --info --serverinfo \
- --noauth --user --key --version \
- --license --help --verbose --raw \
- --pager --debug --html --pipesize --client' \
- -- "$cur" ) )
- return 0
- fi
-
- case $prev in
- -d|--database|-i|-info)
- COMPREPLY=( $( compgen -W '$( _dictdata -D )' -- "$cur" ) )
- return 0
- ;;
- -s|--strategy)
- COMPREPLY=( $( compgen -W '$( _dictdata -S )' -- "$cur" ) )
- return 0
- ;;
- *)
- ;;
- esac
-
- [ -r $dictfile ] && \
- COMPREPLY=( $( compgen -W '$( cat $dictfile )' -- "$cur" ) )
- }
- complete -F _dict -o default dict rdict
- }
-
- # Local variables:
- # mode: shell-script
- # sh-basic-offset: 4
- # sh-indent-comment: t
- # indent-tabs-mode: nil
- # End:
- # ex: ts=4 sw=4 et filetype=sh
-